#pragma once

#include <GL\glew.h>
#include <GL\freeglut.h>

#include <glm\glm.hpp>

#include "Camara.h"


class CamPrimeraPersona : public Camara {
public:
	CamPrimeraPersona(unsigned int alto, unsigned int ancho, float fov);
	~CamPrimeraPersona();

	virtual void zoomIn(ZOOM_TYPE z);
	virtual void mouseMove(int viewportPosX, int viewportPosY);
	virtual void moverCamara(MOVE_TYPE direccion, float magnitud);

private:
	// Permiten hacer los calculos auxiliares
	float fromPosXToRadians(int x) const;
	float fromPosYToRadians(int y) const;
	float limitarAnguloVert(float angulo) const;
	glm::vec3 crearNuevoVecDirector(const glm::vec3 &oldVecDirector, float deltaX, float deltaY) const;
};

